package com.yunji.product.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.yunji.common.annotation.Excel;
import com.yunji.common.base.ParamsHandleDTO;
import com.yunji.product.domain.ProductAttrDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Package com.yunji.product.vo
 * FileName:	ProductVO.java
 * Copyright:	Copyright © 2024 云集互联 All Rights Reserved
 * Company:		云集互联
 * @version: 1.0
 * @since: JDK 1.8.0_202
 * Create at:   2024-04-07 01:38:09
 * Description:
 * 商品响应参数
 * Modification History:
 * Author					Date						Version			Description
 * --------------------------------------------------------------------------------
 * HuaAo				2024-04-07 01:38:09			1.0				1.0 Version
 */
@Data
public class ProductVO implements ParamsHandleDTO {
    private Long id;

    @Excel(name = "上架状态：0-&gt;下架；1-&gt;上架")
    @ApiModelProperty("上架状态：0-&gt;下架；1-&gt;上架")
    private Long publishStatus;

    @Excel(name = "商品类型")
    @ApiModelProperty("商品类型")
    private Integer productType;

    @Excel(name = "商品名称")
    @ApiModelProperty("商品名称")
    private String productName;

    @ApiModelProperty("副标题")
    private String subTitle;

    @Excel(name = "销量")
    @ApiModelProperty("销量")
    private Integer sale;

    @Excel(name = "价格")
    @ApiModelProperty("价格")
    private BigDecimal price;

    @Excel(name = "成本价")
    @ApiModelProperty("成本价")
    private BigDecimal costPrice;

    @Excel(name = "折扣价")
    @ApiModelProperty("折扣价")
    private BigDecimal discountPrice;

    @ApiModelProperty("关键词")
    private String keywords;

    @ApiModelProperty("备注")
    private String note;

    @ApiModelProperty("画册图片，连产品图片限制为5张，以逗号分割")
    private String albumPics;

    @ApiModelProperty("产品详情网页内容")
    private String detailHtml;

    @ApiModelProperty("重要属性")
    private String importantAttributes;

    @ApiModelProperty("其他属性")
    private String otherAttributes;

    @ApiModelProperty("货柜ID")
    private Long containerId;

    @ApiModelProperty("网点ID")
    private Long siteId;

    @ApiModelProperty("所属ID")
    private Long belongId;

    @Excel(name = "排序")
    @ApiModelProperty("排序")
    private Long sort;

    @Excel(name = "货柜格子是否为空")
    @ApiModelProperty("货柜格子是否为空：true空false非空")
    private Boolean cellIsEmpty;

    @Excel(name = "单位（数量）")
    @ApiModelProperty("单位（数量）")
    private Integer unitAmount;

    @Excel(name = "格子号")
    @ApiModelProperty("格子号")
    private Integer cell;

    @Excel(name = "格子状态 0-无商品(已售) 1-有商品(未售) 2-缺货")
    @ApiModelProperty("格子状态 0-无商品(已售) 1-有商品(未售)")
    private Integer status = 1;

    @ApiModelProperty("商品总数")
    private Integer productQuantity;

    @ApiModelProperty("商品上限")
    private Integer ceilingQuantity;

    @ApiModelProperty("商品单位")
    private String unitName;

    @ApiModelProperty("商品品牌")
    private String brandName;

    @ApiModelProperty("商品属性")
    @TableField(exist = false)
    private List<ProductAttrDO> attrValues;

    @ApiModelProperty("sku")
    private String sku;

    @Excel(name = "销售额", width = 15)
    @ApiModelProperty("销售额")
    private BigDecimal saleAmount;

    @Excel(name = "代理折扣价", width = 15)
    @ApiModelProperty("代理折扣价")
    @TableField(exist = false)
    private BigDecimal agentDiscountPrice;

    @ApiModelProperty("商品厚度")
    private BigDecimal productHeight;

    @ApiModelProperty("底部高度")
    private BigDecimal bottomHeight;

    @Excel(name = "最高折扣价", width = 15)
    @ApiModelProperty("最高折扣价")
    private BigDecimal maxDiscountPrice;

    @Excel(name = "最小折扣价", width = 15)
    @ApiModelProperty("最小折扣价")
    private BigDecimal minDiscountPrice;

    @Excel(name = "代理商授权价")
    @ApiModelProperty("代理商授权价")
    @TableField(exist = false)
    private BigDecimal agentPrice;

    @ApiModelProperty("授权类型（0-指定代理商 1-全部授权）")
    private Integer grantType;

    @ApiModelProperty("单位ID")
    private Long unitId;

    @ApiModelProperty("品牌ID")
    private Long brandId;


    @Excel(name = "代理个数", width = 15)
    @ApiModelProperty("代理个数")
    @TableField(exist = false)
    private Integer agentNums;

    @ApiModelProperty("代理ID集合")
    @TableField(exist = false)
    private Long[] agentIds;

}
